const express = require("express");
const morgan = require("morgan");
const session = require("express-session");
const userRouter = require("./routes/userRouter")
const rolesRouter = require("./routes/rolesRouter")
const doctorRouter = require("./routes/doctorRouter")


const app = express();

app.use(morgan("dev"));
// 中间件的写法，中间件，就是实现一个功能 的函数的模块。
// 函数有request, response, next(),一个中间件中，必须要调用next(),才可以让请求的数据，继续向下传递。

app.use(session({
  name: "demow296", //cookie的name,
  secret: "guoxinan", // 密钥
  cookie: { maxAge: 1000 * 60 * 60 }, // 设置session和cookie的失效时间,单位毫秒
  rolling: true, //更新session中cookie的失效时间,默认是false
  resave: true //重新保存
}))
// app.use(function (req, res, next) {
//   // console.log(req.session);  // 没有配置之前是Undefined,之后是 Session {cookie: { maxage,...}}
//   // console.log("我自己写的中间件");
//   // next()
//   // 以下代码，判决用户有没有权限访问除登录页面以外的其它HTML页面
//   if (req.session.user) {
//     // 登录了的
//     next()

//   } else {
//     // 没有登录
//     console.log("req.url=>",req.url,/\.html/.test(req.url))
//     if(req.url === "/"  || req.url === "/index.html"){
//       // 没有登录时，只要是访问首页，就允许访问
//       next();
//     }else if(/\.html/.test(req.url)){
//       // 如果访问的是除首页以外的其它HTML页面，就重定向到登录页面。
//       res.redirect("/index.html")
//     }else{
//       next();
//     }
   
//   }
// })
app.use(express.urlencoded({ limit: '10mb', extended: true }));
app.use(express.json({ limit: '10mb' }));
app.use(express.static(__dirname + "/public"));

// 路由
app.use("/", userRouter);
app.use(rolesRouter); // 默认就挡截以"/"开头的url.
app.use(doctorRouter);

app.listen(80, () => {
  console.log(`请通过 http://127.0.0.1 访问页面`);

});
